package io_0927;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

/**
 * Date: 2022-09-28
 *
 *  InputStream类: 读数据, 把数据从硬盘读到内存中.
 *  注意: InputStream 只是一个抽象类,不能实例化.要使用还需要具体的实现类。关于 InputStream 的实现类有很多，基
 *       本可以认为不同的输入设备都可以对应一个 InputStream 类，我们现在只关心从文件中读取，所以使
 *       用 FileInputStream.
 *  InputStream 的构造方法:
 *    1.  int read() 读取一个字节的数据，返回 -1 代表已经完全读完了.
 *    2.  int read(byte[] b) 最多读取 b.length 字节的数据到 b 中，返回实际读到的数量；-1 代表以及读完了.
 *                              [参数b 存放输出结果的内容, b称为"输出型参数.]
 *    3.  int read(byte[] b,int off, int len) 最多读取 len - off 字节的数据到 b 中，放在从 off 开始，返
 *                                            回实际读到的数量；-1 代表已经读完了.
 *    4.  void close() 关闭字节流.
 *  */
public class Demo7 {
    public static void main(String[] args) throws IOException {
        // InputStream 不能实例化, 要使用 FileInputStream 来实例化.
        InputStream inputStream = new FileInputStream("./bbb.txt"); // 这个操作 类似于打开文件
        while(true) {
            int b = inputStream.read();
            if(b == -1) { break; }
            System.out.print(b + ":");
            System.out.print((char)b + "  ");
        }
        inputStream.close(); // 关闭文件.
    }
}
